//
//  STSilentLivenessDetectorDelegate.h
//
//  Created by sluin on 15/12/4.
//  Copyright © 2015年 SenseTime. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "STSilentLivenessFaceEnumType.h"
#import "STSilentLivenessEnumTypeHeader.h"
#import "STSilentLivenessImage.h"
#import "STSilentLivenessRect.h"
#import "STSilentLivenessFace.h"

/**
 *  活体检测器代理
 */
@protocol STSilentLivenessDetectorDelegate <NSObject>

@required

/**
 *  活体检测成功回调
 *
 *  @param protobufData       回传加密后的二进制数据
 *  @param images             根据指定输出方案回传 STSilentImage 数组 , STSilentImage属性见 STSilentImage.h
 *  @param faceRects          根据指定输出方案回传 STSilentRect 数组 , STSilentRect属性见 STSilentRect.h
 */
- (void)silentLivenessSuccessWithProtobufData:(NSData *)protobufData
                                       images:(NSArray *)images
                                    faceRects:(NSArray *)faceRects;

/**
 *  活体检测失败回调
 *
 *  @param livenessResult    运行结果STIDSilentLivenessResult
 *  @param protobufData      回传加密后的二进制数据
 *  @param images            根据指定输出方案回传 STSilentImage 数组 , STSilentImage属性见 STSilentImage.h
 *  @param faceRects         根据指定输出方案回传 STSilentRect 数组 , STSilentRect属性见 STSilentRect.h
 */
- (void)silentLivenessFailureWithErrorCode:(STIDSilentLivenessResult)livenessResult
                              protobufData:(NSData *)protobufData
                                    images:(NSArray *)images
                                 faceRects:(NSArray *)faceRects;



@optional

/**
 *  活体检测过程中
 *  @param faceDistance       人脸的远近
 *  @param facePosition       人脸的位置
 *  @param faceQuality        人脸的质量
 *  @param faceOcclusion      人脸遮挡属性
 */
- (void)silentLivenessFaceStatusChangedWithFaceDistance:(STIDSilentLivenessFaceDistanceStatus)faceDistance
                                           facePosition:(STIDSilentLivenessFacePositionStatus)facePosition
                                            faceQuality:(STIDSilentLivenessQuailityStatus)faceQuality
                                          faceOcclusion:(STSilentLivenessFace *)faceOcclusion;

@end
